Enterprise relevancy ranking using a neural network

ABSTRACT

A neural network is used to process a set of ranking features in order to determine the relevancy ranking for a set of documents or other items. The neural network calculates a predicted relevancy score for each document and the documents can then be ordered by that score. Alternate embodiments apply a set of data transformations to the ranking features before they are input to the neural network. Training can be used to adapt both the neural network and certain of the data transformations to target environments.

CROSS-REFERENCE TO RELATED APPLICATIONS.

This application related to co-pending application Ser. No. 11/874,579 filed on the same day herewith, and titled “Ranking and Providing Search Results” which is owned by the same assignee of this application.

BACKGROUND

The use of search engines to locate relevant documents within a database, enterprise intranet, or the Internet has become commonplace. At a very high level, most search engines function by performing three distinct steps: identifying all documents which match the search criteria (the “candidate documents”); ranking the candidate documents based on a predicted relevance; and presenting the results to the user beginning with the most relevant.

The quality of the relevance ranking function is very important to the user's satisfaction with the search engine because the user is not expected to, and in many cases cannot realistically, review the entire set of matching documents. In most cases, the user will only review a relatively small number of those documents and so must be presented the most relevant candidates within that small subset for the search to be successful.

For purposes of comparing the performance of different ranking functions, it is convenient to approximate the overall user satisfaction by a single metric or set of metrics. Typically, the metric is computed over a representative set of queries that are selected by random sampling from the search domain. The metric can be as simple as the average count of relevant documents in the top N (1,5 or 10) results, often referred to as Precision @1, 5, or 10, or a slightly more complicated measure such as Normalized Discounted Cumulative Gain (NDCG).

The quality of the ranking function is dependent primarily on two characteristics: the set of features on which the ranking is based, and the specific algorithm applied to the features. The ranking features are attributes of the candidate documents that contribute to identifying relevance of the document. The ranking algorithm determines how these features are combined together into a single number that can be used to rank order the documents. Typical search engines use an algorithm which relies upon a linear combination of the ranking features. Neural networks have also been applied in the area of Internet searching.

The preferred set of ranking features varies depending on the search domain. Much of the emphasis for search engine development is on Internet searches. However, enterprise s searching of an intranet or document library is also in high demand but requires a different, tailored set of features for optimal results. This is driven primarily by different characteristics of the domain and the documents themselves.

SUMMARY

This Summary is provided to introduce in a simplified form a selection of concepts that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

Various aspects of the subject matter disclosed herein are related to utilizing a neural network to determine relevancy scores derived from a set of ranking features which have been found to perform well in an enterprise environment.

Other aspects relate to applying a set of transformations to the ranking features prior to input to the neural network. Some of these transformations use constant values which can be configured to tailor the invention to specific environments. If desired, this configuration can be incorporated into the process of training the neural network itself.

The approach describe below has demonstrated improved user satisfaction metrics of approximately 10% for Precision @ 10 and approximately a 4.5 point increase in NDCG, and may be implemented as a computer process, a computing system, or as an article of manufacture such as a computer program product. The computer program product may be a computer storage medium readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.

A more complete appreciation of the above summary can be obtained by reference to the accompanying drawings, which are briefly summarized below, to the following detailed description of present embodiments, and to the appended claims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an exemplary operating environment in which relevancy ranking using a neural network may be implemented.

FIG. 2 is a block diagram of an exemplary topology for a neural network and supporting input nodes.

FIG. 3 is a flow diagram which provides an overview of the processing steps used in an embodiment.

DETAILED DESCRIPTION

This detailed description is made with reference to the accompanying drawings, which form a part hereof, and which show, by way of illustration, specific exemplary embodiments. These embodiments are described in sufficient detail to enable those skilled in the art to practice what is taught below, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the spirit or scope of the subject matter. The following detailed description is, therefore, not to be taken in a limiting sense, and its scope is defined only by the appended claims.

Overview

At a very high level of abstraction, a search engine which is used by a user to locate documents follows a process consisting of three steps: searching for candidate documents; ranking the candidate documents; and displaying the ranked documents to the user.

Searching typically involves obtaining a set of keywords from the user to direct the search and then identifying all documents within the search domain which match those keywords. In attempting to match the keywords, the search engine may compare the keywords to a variety of document attributes (i.e., title, body, etc), document metadata, or metadata about the candidate document maintained in another document (i.e., anchor text on hyperlinks to the candidate). The resulting set of candidate documents contains all documents from the search domain which may be relevant. Clearly, some are more likely to be relevant than others.

Ranking the candidate documents attempts to predict the relevance of the documents to the user. This is done by applying a ranking function to one or more characteristics, or ranking features, of the candidate documents to obtain a score for each document. The candidate documents are then ordered by their score in decreasing order of predicted relevance.

Following ranking, the ordered candidate documents are then presented to the user starting with the most relevant. Typically, the list is presented in relatively small groups, such as 10 or 20 at a time. Because of a natural tendency for the user to only review a small number of these groups, it is important that the user find what they consider to be the most relevant documents within this small subset of the candidate documents. User satisfaction with the search engine is thus critically dependent upon the predicted relevance calculated by the ranking function matching the user's perceived relevance so that the user finds what they want as easily as possible. It is the step of ranking the candidate documents which is the focus of the description below and will be discussed now in more detail.

Implementation of the Ranking Function in a Neural Network

The use of neural networks is known in the art. As such, their general principles will not be discussed in detail herein. Only a brief overview will be provided to establish a context for the present subject matter.

It is feasible to implement neural networks either in hardware or software and these embodiments would generally be considered equivalent. As is typical, hardware generally provides increased speed while software provides greater flexibility. The embodiments described herein will be presented as software implementations with the understanding that they encompass an equivalent hardware, or mixed hardware/software solution.

The subject matter may be described in the general context of computer-executable instructions, such as program modules, executed in an appropriate operating environment by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.

FIG. 1 illustrates one example of a suitable operating environment 100 in which a software embodiment may be implemented. This is only one example of a suitable operating environment and is not intended to suggest any limitation as to the scope of use or functionality. Other well known computing systems, environments, and/or configurations that may be suitable for use include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

In its most basic configuration, operating environment 100 typically includes at least one processing unit 102 and memory 104. Depending on the exact configuration and type of computing device, memory 104 may be volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.), or some combination of the two. This most basic configuration is illustrated in FIG. 1 by dashed line 106. Further, environment 100 may also include storage devices (removable, 108, and/or non-removable, 110) including, but not limited to, magnetic or optical disks or tape. Similarly, environment 100 may also have input device(s) 114 such as keyboard, mouse, pen, voice input, etc. and/or output device(s) 116 such as a display, speakers, printer, etc. Also included in the environment may be one or more communication connections, 112, such as LAN, WAN, point to point, etc. All of these devices are well known in the art and need not be discussed at length here.

Operating environment 100 typically includes at least some form of computer readable media. Computer readable media can be any available media that can be accessed by processing unit 102 or other devices comprising the operating environment. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information. Communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.

The operating environment 100 may be a single computer operating in a networked environment using logical connections to one or more remote computers. The remote computer may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above. The logical connections may include any method supported by available communications media. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.

Referring to FIG. 2, the topology of an exemplary neural network configured to implement a ranking function is presented. In addition, an exemplary set of processing applied to the inputs are identified. The input processing includes the transform function, 202, and normalization, 204, layers. The neural network itself comprises the input nodes, 206, hidden nodes, 298, and score, 210, layers. It should be noted that the number of nodes at any layer may be modified as appropriate. FIG. 3 provides an accompanying overview of the general process implemented including the steps embodied in the architecture of FIG. 2.

At the top layer, 200, the raw data values for the ranking features are made available. These may be any of a variety of data types including numeric values, Boolean flags, character codes, labels etc., and result from steps 300 and 302 in FIG. 3. These are the relevancy ranking features. The transform functions, 202, convert the raw data values into a form more suitable for the neural network, step 304. In some cases this will convert linear data to non-linear. In others it adjusts the shape of a curve. Any appropriate transformation may be used and it is not required that all inputs be transformed. Where the data is already in an appropriate form the transformation step may be bypassed. One example of such data is the BM25 ranking feature discussed below.

One exemplary transformation is that for Click Distance (CD). CD is a query-independent ranking feature that measures the number of “clicks” required to reach a given page, or document, from a reference location. It takes advantage of the hierarchical structure of an intranet which usually follows a tree structure, with a root node (often the homepage) and subsequent branches extending to other nodes from that root. Viewing the tree as a graph, the CD is the shortest path between the root, as reference location, and the given page.

In its raw form, CD increases linearly in value the further the candidate document is from the root. Typically, the greater the CD, the less relevant the document is likely to be. Therefore, the formula

$\frac{1}{1 + {k\; x}}$

is used, where x is the raw value for CD, and k is the saturation constant. This gives a value that decreases with distance rather than increasing. It has the further advantage that the value for k can be modified separately or as part of the neural network training to adjust the rate of decrease providing an additional degree of control over sensitivity to this feature.

Another exemplary transformation is that for URL Depth (UD). Simplistically, UD counts the number of slashes (“/”) in the Uniform Resource Locator (URL) of a network resident document. More accurately, it is how many levels deep into the storage structure (i.e., file system) the document is stored relative to a defined root level. Like CD, UD increases with depth while presumed relevance is decreasing. The same formula

$\frac{1}{1 + {k\; x}}$

is used to transform UD, but with x representing the raw value for UD and k being a distinct saturation value which is also trainable.

A further exemplary transformation is that applied to enumerated data types. One example of such a data type is file type and another is language. For any given search domain, there are a finite set of file types present and/or supported by the search engine. For example an enterprise intranet may contain word processing documents, spreadsheets, HTML web pages, and other documents. Each of these file types may have a different impact on the relevance of the associated document. An exemplary transformation will convert the single file type value into a set of binary flags, one for each supported file type. Each of these flags is then made available to the neural network individually so that each may be given a separate weight and processed separately. Language (in which the document is written) can be handled in a similar manner, with a single discrete binary flag used to indicate whether or not the document is written in the user's primary language.

After any required transformations are applied, the data is preferably normalized in layer 204, step 306. This technique assures that all input data has the same average value and distribution. In an exemplary embodiment, the data is normalized so that it has an expected value of 0 and a standard deviation of 1. The normalized data is then provided to the neural network input nodes, 206. These nodes do not modify the data in any manner, but serve to distribute the data to each of the hidden nodes, layer 208, as illustrated.

The next step is to process the ranking features in the neural network, beginning with the calculation of the hidden node scores, step 308. In an exemplary embodiment, each of the hidden nodes, h_(j), calculates a linear combination of the input values using the formula

$h_{j} = {\tanh\left( {\left( {\sum\limits_{i = 1}^{n}{x_{i} \cdot w_{ij}}} \right) + t_{j}} \right)}$

where h_(j) is the output of hidden node j; x_(i) is the input value from input node i; w_(ij) is the weight to be applied to input value x_(i) by hidden node j; and t_(j) is the threshold value for hidden node j, and tan h( ) is the hyperbolic tangent function. Alternatively, other sigmoid functions can be used in place of tan h( ).

The overall relevance ranking score is calculated, step 310, by the single node S in the scoring layer, 210, of the neural network. An exemplary embodiment uses the formula

${{Score}\mspace{11mu}\left( {x_{1},\ldots\mspace{14mu},x_{n}} \right)} = \left( {\sum\limits_{j = 1}^{m}{{h_{j} \cdot w}\; 2_{j}}} \right)$

Where h_(j) is the output of hidden node j as calculated above and w2_(j) is the weight to be applied to hidden node output j.

An advantage of the above approach is that the final score provides a non-linear combination of the inputs (ranking features). This overcomes a disadvantage of the linear combinations which assume independence of the input variables. A clear counter example is CD and UD (defined above). These will not typically be totally independent because it is probable that as UD increases (the document is located deeper in the tree) CD will also increase as more clicks are needed to navigate the tree. Dependencies such as these can be captured using a neural network implementation of the relevance ranking function.

With the scoring process complete, the candidate documents will be rank ordered according to their relevancy score, step 312, and displayed to the user, step 314. Note that step 312 is not essential to the scoring of the documents but performs actual ranking ordering of the documents based on the scoring results. Similarly, step 314 is not part of the ranking process but is a typical application of the results in the context of a search engine.

Relevance Ranking in an Enterprise Environment

One embodiment focuses on searching for documents within an enterprise environment. That is, items located on a company intranet, internal database or similar. In this environment the documents, and the search domain itself, have characteristics which differ sufficiently from the Internet that different relevancy ranking features are needed to achieve optimal results.

One such characteristic is that the documents are far more likely to be maintained by a custodian or at least according to a standard process than is the case of the public access Internet. Because of this, documents are more likely to have associated metadata and that metadata is more likely to be accurate. This characteristic increases the utility of metadata in determining the predicted relevance of documents.

Another distinguishing characteristic is that enterprise document collections tend to be more hierarchically organized than the Internet. This is likely due to these collections being focused on the business of the enterprise in question and tending to be narrower, and deeper, than a broad, general interest collection. It is also more likely that the collection is indexed and cross referenced via hyperlinks since it is being actively maintained.

Because of the more hierarchical nature of enterprise search domains, features such as CD and UD, as defined above, become more viable predictors of relevancy. Where a collection is being actively maintained, the most relevant and authoritative documents will be the most accessible. This implies a short CD and shallow UD. The further a document is from the authoritative references, the less relevant it is likely to be. This argument is even stronger where CD is improved by using a Biased Click Distance. Briefly, Biased Click Distance provides for the CD of documents which have been identified as authoritative to be manually specified as arbitrarily low, thus improving their relevancy score, and the scores for other documents are then calculated based on their distance from these documents, rather than only from the root node.

Another ranking feature which is useful in the enterprise environment is file type. While the Internet will almost certainly contain a wider variety of file types as a raw measure, it is far more uniform as a relative measure. Because of its nature, the Internet can be expected to be dominated by web-related document types (HTML, ASP, etc.). This uniformity limits the value of file type as a relevancy predictor. On the other hand, an enterprise domain is more likely to contain a relatively high percentage of content documents and they are more likely to be retained in their native format. That is, word processing documents will remain as such, rather than being converted to HTML; a CAD file will be available in its original form, rather than being converted to a JPG image; etc. Because of this, file type will serve as an accurate predictor of document relevancy for certain types of information.

Metadata may also be a useful ranking feature in the enterprise environment. As discussed above, metadata is more likely to be complete and accurate in an enterprise. Keywords stored with the document are more likely to be drawn from the vocabulary of the enterprise business. Titles will likely be more meaningful, since they will also be related to the business of the enterprise. The language in which a document is written will be a member of a much smaller set than on the Internet. There may also be custom metadata, such as project name, department name, etc. which are usable to predict relevancy.

Another exemplary approach is to generate a ranking feature which is based on multiple document characteristics and generates a single value which is then used as an input to the neural network. One such ranking feature is known in the art as BM25. A more beneficial version of the BM25 formula is BM25F. This formula accounts for each occurrence of a term in the search query as it appears in each of several predetermined fields associated with the document being scored. Each field has its own weight and associated values (such as length) which are used to generate a field specific score for that occurrence. All field scores are combined for each term and these term scores are combined across all terms in the query to provide an overall score for each document. That overall score is then used as a relevance ranking feature by the neural network.

In one embodiment, a variation of BM25F, known as BM25G, is used. It generates the same results as BM25F but is adapted for use with neural networks. Specifically parameter b is transformed differently so that it is more convenient to take derivatives. This simplifies the task of training the neural network. The formula for BM25G is

${B\; M\; 25\; G\;\left( {Q,D} \right)} = {\sum\limits_{t \in Q}{\frac{{TF}_{t}^{\prime}}{k_{1} + {TF}_{t}^{\prime}} \cdot {\log\left( \frac{N}{n_{t}} \right)}}}$ ${TF}_{t}^{\prime} = {\sum\limits_{p \in D}{{TF}_{t,p} \cdot w_{p} \cdot \frac{1 + b_{p}}{\left( {\frac{{DL}_{p}}{{AVDL}_{p}} + b_{p}} \right)}}}$

where Q is the query string; t is an individual query term (word); D is the document being scored; p is an individual property of the document; N is the total number of documents in the search domain; n_(t) is the number of documents containing term t; DL_(p) is the length of the property p; AVDL_(p) is the average length of the property p; TF_(t,p) is the term t frequency in the property p; w_(p) is the weight for the property p; b_(p) is the length normalization for the property p; and k₁ is the curvature.

In the BM25G formula, p, the individual property, refers to fields associated with the document in which the individual search terms may be found. In an exemplary embodiment, the specific fields used include body, title, author, anchor text, URL display name, and extracted title. It should be noted that some of the fields (i.e., body) are part of the document itself, while others may be metadata directly associated with the document and still others (i.e., anchor text specified for a hyperlink to the document) may be metadata which is indirectly associated with the document, but stored with a different document.

One embodiment of a search engine utilizing a neural network for relevance ranking uses one or more of the above ranking features to score documents by predicted relevance. Additional features could also be used. If desired, the set of features could be tailored to the specific environment in which the search engine is used.

Training

A neural network must be trained prior to operational use. One embodiment utilizes LambdaRank training which offers the advantage that new features can be added relatively easily to the ranking function without significantly affecting the training accuracy or training speed. As discussed above, one embodiment will also modify one or more of the values used in the transform functions as a part of the training process adding an additional degree of adaptability.

Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. It will be understood by those skilled in the art that many changes in construction and widely differing embodiments and applications will suggest themselves without departing from the scope of the disclosed subject matter. 

1. A computer-implemented method of determining a relevancy rank ordering score for a plurality of documents comprising: (a) identifying, by at least one processing unit, a finite set of candidate documents; (b) for each of the candidate documents: (i) obtaining raw data for a plurality of ranking features associated with the candidate document, the plurality of ranking features comprising at least two of: BM25, click distance, URL depth, file type, and language of the candidate document; (ii) transforming the raw data for the plurality of ranking features; (iii) normalizing the transformed raw data for the plurality of ranking features; (iv) using a neural network to calculate a relevancy score from the transformed, normalized raw data for the plurality of ranking features, wherein calculating the relevancy score further comprises: calculating hidden node scores at a plurality of hidden nodes from the transformed, normalized raw data, wherein the transformed, normalized raw data for each of the ranking features is provided to each of the plurality of hidden nodes; and calculating the relevancy score based on the hidden node scores; (c) ranking the candidate documents according to the relevancy score for each of the candidate documents; and (d) displaying a list of the ranked documents.
 2. The method of claim 1 wherein at least one of the transformations is of the form $\frac{1}{1 + {k\; x}}$ wherein x is the ranking feature and k is a saturation value.
 3. The method of claim 2 wherein at least one of the saturation values is adjusted during training of the neural network.
 4. The method of claim 1 wherein at least one of the transformations comprises mapping each value of an enumerated data type to a discrete binary value.
 5. The method of claim 4 wherein the neural network accepts each discrete binary value as a separate input and applies a separate trainable weight to each of the separate inputs.
 6. The method of claim 1 wherein the BM25 feature comprises the BM25G formula which uses at least one property selected from the group consisting of body, title, author, anchor text, URL, and extracted title.
 7. A system for generating a relevancy ranking for documents comprising: at least one processing unit; a memory, communicatively coupled to the at least one processing unit, containing instructions that, when executed by the at least one processing unit, comprise: a module which identifies a set of candidate documents and makes available raw data for a plurality of ranking features for each of the candidate documents, the plurality of ranking features comprising at least two of: BM25, click distance, URL depth, file type, and language of the candidate document; and a ranking module comprising at least one input transformation, at least one input normalization, and a neural network, wherein the ranking module accepts the raw data for the plurality of ranking features for each of the candidate documents individually, applies the at least one input transformation to the raw data for each of the plurality of ranking features, applies the at least one input normalization to the transformed raw data for each of the plurality of ranking features, provides the transformed, normalized raw data for the plurality of ranking features to the neural network which calculates hidden node scores at a plurality of hidden nodes from the transformed, normalized raw data, wherein the transformed, normalized raw data for each of the ranking features is provided to each of the plurality of hidden nodes, and wherein the neural network calculates a relevancy score based on each of the hidden node scores for each of the candidate documents, and wherein the ranking module ranks the candidate documents and provides a list of the candidate documents for display.
 8. The relevancy ranking system of claim 7 wherein the BM25 feature comprises the BM25G formula which uses at least one property selected from the group consisting of body, title, author, anchor text, URL, and extracted title.
 9. The relevancy ranking system of claim 7 wherein the data module further comprises at least one transformation constant and the input transformation utilizes the transformation constant.
 10. The relevancy ranking system of claim 7 wherein at least one of the input transformations is of the form $\frac{1}{1 + {k\; x}}$ wherein x is the ranking feature and k is a configurable constant.
 11. The relevancy ranking system of claim 10 wherein at least one of the configurable constants is adjusted during training of the neural network.
 12. The relevancy ranking system of claim 7 wherein at least one of the input transformations comprises mapping each value of an enumerated data type to a discrete binary value and the neural network accepts each discrete binary value as a separate ranking feature and applies a separate ranking feature weight to each of the separate ranking features.
 13. A computer implemented method of rank ordering a plurality of documents by relevancy comprising: (a) identifying, by at least one processing unit, a finite set of candidate documents; (b) for each of the candidate documents: (i) obtaining raw data for a plurality of ranking features associated with the candidate document, the plurality of ranking features comprising at least two of: BM25, click distance, URL depth, file type, and language of the candidate documents; (ii) applying a transformation to the raw data for the plurality of ranking features, wherein the transformation comprises a constant which is configurable; (iii) normalizing the transformed raw data for the plurality of ranking features; (iv) using a neural network to calculate a relevancy score from the transformed, normalized raw data for the plurality of ranking features, wherein calculating the relevancy score further comprises: calculating hidden node scores at a plurality of hidden nodes from the transformed, normalized raw data, wherein the transformed, normalized raw data for each of the ranking features is provided to each of the plurality of hidden nodes; and calculating the relevancy score based on each of the hidden node scores; (c) ordering the candidate documents by the calculated relevancy scores; and (d) displaying a list of the ordered candidate documents.
 14. The rank ordering method of claim 13 wherein at least one of the transformation is of the form $\frac{1}{1 + {k\; x}}$ wherein x is the ranking feature and k is one of the configurable constants.
 15. The rank ordering method of claim 14 further comprising at least one ranking feature transformation comprising mapping each value of an enumerated data type to a discrete binary value and wherein the neural network accepts each discrete binary value as a separate ranking feature and applies a separate trainable weight to each of the discrete binary values.
 16. The rank ordering method of claim 15 wherein the ranking features comprise at least BM25, click distance, URL depth, file type, and language and wherein click distance and URL depth are transformed using: $\frac{1}{1 + {k\; x}}$ wherein x is the ranking feature and k is one of the configurable constants, and wherein file type, and language are transformed by mapping each value of an enumerated data type to a discrete binary value and wherein the neural network accepts each discrete binary value as a separate ranking feature and applies a separate trainable weight to each of the discrete binary values.
 17. The method of claim 16 wherein the BM25 feature comprises the BM25G formula which uses the properties of body, title, author, anchor text, URL, and extracted title. 